package com.yonyougov.devops.cruxcisupport.app;

import com.yonyougov.devops.cruxcisupport.app.dto.AppPageLikeDto;
import com.yonyougov.devops.cruxcisupport.app.dto.LinkAppDto;
import com.yonyougov.devops.cruxcisupport.app.vo.LinkAppVo;
import com.yonyougov.devops.cruxcisupport.app.vo.NoLinkAppByRoleIdDto;
import com.yonyougov.devops.cruxcisupport.app.vo.NoLinkAppVo;
import com.yonyougov.devops.fwc.core.dao.BaseDao;

import java.math.BigInteger;
import java.util.List;

/**
 * t_app数据层
 */
public interface AppDao extends BaseDao<AppEntity, BigInteger> {
    //<!--用户自定义代码开始-->

    /**
     * 查询每页的数据
     * @param appPageLikeDto com.yonyougov.devops.cruxcisupport.app.dto.AppPageLikeDto
     * @return appEntity com.yonyougov.devops.cruxcisupport.app.AppEntity
     */
    List<AppEntity> findPageByRoleIds(AppPageLikeDto appPageLikeDto);

    /**
     * 查询总数量
     * @param appPageLikeDto
     * @return
     */
    int countByRoleIds(AppPageLikeDto appPageLikeDto);

    List<NoLinkAppVo> findNoLinkAppListByRoleId(NoLinkAppByRoleIdDto noLinkAppByRoleIdDto);

    int countNoLinkAppByRoleId(NoLinkAppByRoleIdDto noLinkAppByRoleIdDto);

    AppEntity findByPrimaryKey(BigInteger id);

    /**
     * 查询当前用户已关联的应用
     *
     * @param linkAppDto com.yonyougov.devops.cruxcisupport.app.dto.LinkAppDto
     * @return List<LinkAppVo> com.yonyougov.devops.cruxcisupport.app.vo.LinkAppVo
     */
    List<LinkAppVo> findAppByRoleIds(LinkAppDto linkAppDto);

    /**
     * 根据id查询
     *
     * @param ids ids
     * @return List<AppEntity>
     */
    List<AppEntity> findById(List<BigInteger> ids);
    //<!--用户自定义代码结束-->
}
